package com.atguigu.demo.service.impl;

import com.atguigu.demo.dao.api.TigerDao;
import com.atguigu.demo.dao.impl.TigerDaoImpl;
import com.atguigu.demo.entity.Page;
import com.atguigu.demo.entity.Tiger;
import com.atguigu.demo.service.api.TigerService;

import java.util.List;

public class TigerServiceImpl implements TigerService {

    private TigerDao tigerDao = new TigerDaoImpl();

    @Override
    public List<Tiger> getAllTigerList() {
        return tigerDao.selectAllTigerList();
    }

    @Override
    public Tiger getTigerById(String tigerId) {
        return tigerDao.selectTigerById(tigerId);
    }

    @Override
    public void removeById(String tigerId) {
        tigerDao.deleteById(tigerId);
    }

    @Override
    public void saveTiger(Tiger tiger) {
        tigerDao.insertTiger(tiger);
    }

    @Override
    public void updateTiger(Tiger tiger) {
        tigerDao.updateTiger(tiger);
    }

    @Override
    public Page<Tiger> getTigerPage(Integer pageNumInt, Integer pageSizeInt, String tigerNameCondition) {

        // 1、根据查询条件返回总记录数
        Long totalRecord = tigerDao.selectCountByCondition(tigerNameCondition);

        // 2、封装 Page 对象（空的——没有设置数据集合）
        Page<Tiger> page = new Page<>(pageNumInt, pageSizeInt, totalRecord.intValue());

        // 3、使用修正之后的 pageNum 查询数据集合
        List<Tiger> tigerList = tigerDao.selectTigerListByConditionLimit(page.getPageNum(), pageSizeInt, tigerNameCondition);

        // 4、把数据集合设置到 Page 对象中
        page.setList(tigerList);

        // 5、返回 Page 对象
        return page;
    }
}
